package com.shop.cereshop.app.service.recommend;

import com.shop.cereshop.app.page.recommend.CereRecommendTypeVO;
import com.shop.cereshop.app.page.recommend.RecommendType;
import com.shop.cereshop.app.page.recommend.RecommendTypeVO;
import com.shop.cereshop.app.param.recommend.RecommendPageDTO;
import com.shop.cereshop.app.param.recommend.RecommendTypeDTO;
import com.shop.cereshop.commons.domain.buyer.CereBuyerUser;
import com.shop.cereshop.commons.domain.common.Page;
import com.shop.cereshop.commons.domain.recommend.CereRecommendType;

import javax.validation.constraints.NotNull;
import java.util.List;

public interface CereRecommendTypeService {
    List<CereRecommendTypeVO> getAll();

    Page<RecommendTypeVO> getRecommendTypeVOs(RecommendPageDTO param);

    List<RecommendType> getRecommendTypes();

    List<RecommendTypeVO> getHotRecommendType(RecommendTypeDTO param, CereBuyerUser user);

    Page<RecommendTypeVO> getRecommendTypePage(RecommendPageDTO param, CereBuyerUser  user);

    List<Long> getRecommendTypeIds();

    RecommendTypeVO getRecommendType(@NotNull(message = "参数不能为空") Long typeId);

    int addRecommendType(CereRecommendType param);
}
